PART1  ;		* * * * * * * * * * * * *
 ;		*  PROGRAM BY KIM WATT  *
 ;		* BREEZE COMPUTING INC. *
 ;		*     P.O. BOX  1013    *
 ;		* BERKLEY, MICH.  48072 *
 ;		*    (313)  288-9422    *
 ;		* * * * * * * * * * * * *				
 ;	ROUTINE TO FLASH AN AREA ON THE SCREEN WHILE
 ;		WAITING FOR A <ENTER> TO BE PRESSED
 ;
 	ORG	5300H		;PUT BEFORE GAME ROUTINES
 MESG	DEFM	'<< PRESS ENTER >>'
 FLASH	LD	HL,MESG		;DATA ADDRESS
 	LD	DE,15360+919	;VIDEO ADDRESS
 	LD	BC,17		;# OF BYTES TO MOVE
 	LDIR			;PUT ON SCREEN
 	JR	FLON		;DO FLASH ROUTINE
 EXBUFF	DEFS	17		;17 BYTE FLASH BUFFER
 FLALEN	DEFB	17		;LENGTH TO FLASH
 FLON	CALL	SETUP		;GET VALUES
 	LDIR			;MOVE VIDEO TO BUFFER
 	CALL	LITE		;LIGHT UP AREA
 	CALL	GETKEY		;KEYBOARD SCAN
 	JR	FLOFF		;TURN ON ASCII
 GETKEY	LD	BC,40H		;DELAY COUNT
 SCANIT	PUSH	BC		;MUST SAVE
 	CALL	2BH		;SCAN KEYBOARD
 	POP	BC		;RESTORE COUNT
 	CP	13		;CARRIAGE RETURN
 	JR	Z,HAVEIT	;HAVE <ENTER> KEY
 	DEC	BC		;DECREMENT COUNT
 	LD	A,B		;TEST IF <BC> IS ZERO
 	OR	C		;FLAGS ARE SET
 	JR	NZ,SCANIT	;NEXT COUNT
 	RET			;NO KEYS PRESSED
 FLOFF	CALL	SETUP		;GET VALUES
 	EX	DE,HL		;TRADE POINTERS
 	LDIR			;MOVE BUFFER TO VIDEO
 	EX	DE,HL		;TRANSFER VALUES
 	LD	(HL),20H	;SPACE AT END OF DISPLAY
 	CALL	GETKEY		;CHECK KEYBOARD
 	JR	FLON		;TURN BACK ON
 HAVEIT	POP	HL		;REMOVE LAST RET. ADDR.
 	RET			;BACK TO CALL ROUTINE
 SETUP	LD	HL,15360+919	;CURSOR POSITION
 	LD	DE,EXBUFF	;BUFFER POINTER
 	LD	A,17		;LENGTH TO FLASH
 	LD	C,A		;LSB OF BYTE COUNT
 	LD	B,0		;ZERO THE B REG.
 	RET			;ALL POINTERS SET
 LITE	CALL	SETUP		;GET POINTERS
 	PUSH	HL		;PASS VALUE TO
 	POP	DE		;   <DE> REGS.
 	INC	DE		;NEXT ADDRESS
 	LD	(HL),143	;GRAPHICS BYTE
 	LDIR			;MOVE BYTES
 	LD	A,20H		;ASCII SPACE
 	DEC	DE		;POINT TO END
 	LD	(DE),A		;WRITE IT
 	RET			;DONE
 ;		* * * * * * * * * * * * *
 ;		*  PROGRAM BY KIM WATT  *
 ;		* BREEZE COMPUTING INC. *
 ;		*     P.O. BOX  1013    *
 ;		* BERKLEY, MICH.  48072 *
 ;		*    (313) 288-9422     *
 ;		* * * * * * * * * * * * *			
 	ORG	5500H
 STACK	EQU	54F0H
 ; * * * * * * * * * * * * * *
 ; * * - - FROM PART 2 - - * *
 ; * * * * * * * * * * * * * * 
 CREDIT	EQU	7012H
 NOISEX	EQU	72F7H
 NOISE2	EQU	7121H
 GAME	EQU	6C6EH
 NOISEA	EQU	71FEH
 SHPMOV	EQU	5D30H
 NOISEF	EQU	7230H
 NOISEC	EQU	7212H
 ; * * * * * * * * * * * * * *
 SCR101	DEFW	8383H
 	DEFW	83BFH
 	DEFB	131
 	DEFM	'  '
 	DEFW	0ADBFH
 	DEFW	2090H
 	DEFB	191
 	DEFM	'  '
 	DEFW	0B48BH
 	DEFW	0B820H
 	DEFB	135
 	DEFM	'   '
 	DEFW	8FB8H
 	DEFB	180
 	DEFM	'   '
 	DEFW	83BFH
 	DEFW	8B83H
 	DEFB	180
 	DEFM	'  '
 	DEFW	83BFH
 	DEFW	8383H
 	DEFB	131
 	DEFM	'  '
 	DEFW	83BFH
 	DEFW	8B83H
 	DEFB	180
 	DEFM	'  '
 	DEFW	87B8H
 	DEFW	8B83H
 	DEFB	180
 	DEFB	'#'
 SCR102	DEFB	191
 	DEFM	'    '
 	DEFW	82BFH
 	DEFW	90ADH
 	DEFB	191
 	DEFM	'   '
 	DEFW	20BFH
 	DEFB	191
 	DEFM	'   '
 	DEFW	0B1BEH
 	DEFW	0B2B0H
 	DEFB	189
 	DEFM	'  '
 	DEFB	191
 	DEFM	'   '
 	DEFB	191
 	DEFM	'  '
 	DEFW	8CBFH
 	DEFB	140
 	DEFM	'    '
 	DEFW	8CBFH
 	DEFW	0BE8CH
 	DEFB	129
 	DEFM	'  '
 	DEFW	8D82H
 	DEFW	0AC8CH
 	DEFB	144
 	DEFB	'#'
 SCR103	DEFW	0B0B0H
 	DEFW	0B0BFH
 	DEFB	176
 	DEFM	'  '
 	DEFW	20BFH
 	DEFW	0AD82H
 	DEFB	191
 	DEFM	'   '
 	DEFW	0BC8BH
 	DEFB	135
 	DEFM	'   '
 	DEFB	191
 	DEFM	'   '
 	DEFB	191
 	DEFM	'  '
 	DEFW	0B0BFH
 	DEFW	0B8B0H
 	DEFB	135
 	DEFM	'  '
 	DEFW	0B0BFH
 	DEFW	0B0B0H
 	DEFB	176
 	DEFM	'  '
 	DEFB	191
 	DEFM	'  '
 	DEFW	0B48BH
 	DEFM	'  '
 	DEFW	0B48BH
 	DEFW	0B8B0H
 	DEFB	135
 	DEFB	'#'
 SCR104	DEFM	'ALIEN INVADERS FROM DEEP SPACE A'
 	DEFM	'RE NOW APPROACHING OUR PLANET IN'
 	DEFM	'GREAT SWARMS TO COLONIZE ON EART'
 	DEFM	'H.   THE INVADERS FEEL THEY MUST'
 	DEFM	'DESTROY ALL LIFE FORMS IN ORDER '
 	DEFM	'TO GUARANTEE THEIR OWN SURVIVAL.'
 	DEFM	'SOON, AS THEIR SHIPS BEGIN DESCE'
 	DEFM	'NDING, YOU MADLY PRESS THE RIGHT'
 	DEFM	'AND LEFT ARROWS ON YOUR KEYBOARD'
 	DEFM	' TO EVADE THEIR CONSTANT ATTACK.'
 	DEFM	'FORTUNATELY,  SIX ARMORED BARRIE'
 	DEFM	'RS STILL EXIST IN YOUR SECTOR TO'
 	DEFM	'SHIELD YOU FROM ABOVE, BUT YOU K'
 	DEFM	'NOW THAT WITH TIME, THEY WILL BE'
 	DEFM	'DESTROYED LEAVING YOU HELPLESS. '
 	DEFM	' YOU EMERGE FROM THEIR TEMPORARY'
 	DEFM	'SAFETY TO THE OPENINGS BETWEEN, '
 	DEFM	' AND PRESS THE SPACE BAR TO FIRE'
 	DEFM	'YOUR MISSILES.  YOU DO KNOW THAT'
 	DEFM	' YOUR SHIPS SHIELDS WILL PROTECT'
 	DEFM	'YOU FROM FOUR HITS,  BUT NUMBER '
 	DEFM	'5 WILL BE FATAL.   AS YOU SETTLE'
 	DEFM	'YOURSELF INTO YOUR CONTROL UNIT '
 	DEFM	'-- YOU STARE AT THE WHITE KEY IN'
 	DEFM	'FRONT OF YOU AND TRY TO PREPARE '
 	DEFM	'YOURSELF FOR WHAT COMES NEXT....#'
 SCR201	DEFM	'* INVADERS *#'
 SCR202	DEFM	'BREEZE COMPUTING#'
 SCR206	DEFM	'FLYING SAUCERS MOVING ACROSS TOP OF'
 	DEFM	' SCREEN WORTH 500 POINTS#'
 SCR207	DEFM	'LARGE SHIPS WILL COUNT 100 POINTS EACH#'
 SCR208	DEFM	'ALL ASTERISKS (*) ARE WORTH 200 POINTS#'
 SCR209	DEFM	'ALL SHOTS THAT MISS SUBTRACT 20 POINTS#'
 SCR211	DEFM	'ENTER SKILL FACTOR (1-5) ** 1 IS HARD!#'
 SCR301	DEFM	'   >X<   >X<   >X<   >X<   >X<   >X<'
 	DEFM	'   >X<   >X<#'
 SCR302	DEFM	'   >X<    *    >X<    *    >X<    * '
 	DEFM	'   >X<    *#'
 SCR314	DEFW	0B0B0H
 	DEFB	176
 	DEFM	'        '
 	DEFW	0B0B0H
 	DEFB	176
 	DEFM	'        '
 	DEFW	0B0B0H
 	DEFB	176
 	DEFM	'        '
 	DEFW	0B0B0H
 	DEFB	176
 	DEFM	'        '
 	DEFW	0B0B0H
 	DEFB	176
 	DEFM	'        '
 	DEFW	0B0B0H
 	DEFB	176
 	DEFB	'#'
 SCR315	DEFW	0BFBCH
 	DEFW	0BFBFH
 	DEFW	0BFBFH
 	DEFB	188
 	DEFM	'    '
 	DEFW	0BFBCH
 	DEFW	0BFBFH
 	DEFW	0BFBFH
 	DEFB	188
 	DEFM	'    '
 	DEFW	0BFBCH
 	DEFW	0BFBFH
 	DEFW	0BFBFH
 	DEFB	188
 	DEFM	'    '
 	DEFW	0BFBCH
 	DEFW	0BFBFH
 	DEFW	0BFBFH
 	DEFB	188
 	DEFM	'    '
 	DEFW	0BFBCH
 	DEFW	0BFBFH
 	DEFW	0BFBFH
 	DEFB	188
 	DEFM	'    '
 	DEFW	0BFBCH
 	DEFW	0BFBFH
 	DEFW	0BFBFH
 	DEFB	188
 	DEFB	'#'
 SCR316	DEFM	' !(O)! #'
 SAUPOS	DEFW	00
 SHPPOS	DEFW	00
 SHOTS	DEFW	00
 HITS	DEFW	00
 MISSES	DEFW	00
 CSCORE	DEFW	00
 PSCORE	DEFW	00
 HSCORE	DEFW	00
 COUNT	DEFW	00
 BUFFER	DEFM	'000000'
 SPARE2	DEFW	00
 SPARE5	DEFW	00
 EXTRA	DEFM	'000000'
 WAY	DEFB	0
 NUMBER	DEFB	0
 SPEED	DEFB	3
 SHIP	DEFB	5
 DEL4	DEFW	0
 DEL5	DEFW	08FFH
 BBYY	DEFB	10H
 ENTRY	DI
 	LD	SP,STACK
 	CALL	CLRSCR
 	LD	HL,SCR101
 	LD	DE,15360+5
 	CALL	DISPLY
 	LD	HL,SCR102
 	LD	DE,15360+64+7
 	CALL	DISPLY
 	LD	HL,SCR103
 	LD	DE,15360+128+5
 	CALL	DISPLY
 	JP	CREDIT
 	LD	A,(15773)
 	CP	75
 	JP	NZ,0
 	LD	A,(15775)
 	CP	77
 	JP	NZ,0
 	LD	A,(15777)
 	CP	87
 	JP	NZ,0
 	LD	A,(15780)
 	CP	84
 	JP	NZ,0
 HOWNOW	LD	HL,SCR104
 	LD	DE,15360+192
 	CALL	DISPLY
 	CALL	NOISEX
 	CALL	ENTRWT
 	CALL	INITL
 REPLAY	LD	SP,STACK
 	CALL	CLRSCR
 	CALL	RESET
 	LD	HL,SCR201
 	LD	DE,15360+26
 	CALL	DISPLY
 	LD	HL,SCR202
 	LD	DE,15360+64+24
 	CALL	DISPLY
 	LD	HL,SCR206
 	LD	DE,15360+320+3
 	CALL	DISPLY
 	LD	HL,SCR207
 	LD	DE,15360+384+13
 	CALL	DISPLY
 	LD	HL,SCR208
 	LD	DE,15360+448+13
 	CALL	DISPLY
 	LD	HL,SCR209
 	LD	DE,15360+512+13
 	CALL	DISPLY
 	LD	HL,SCR211
 	LD	DE,15360+640+13
 	CALL	DISPLY
 	CALL	NOISE2
 	LD	A,(15448)
 	CP	66
 	JP	NZ,0
 	LD	A,(15452)
 	CP	90
 	JP	NZ,0
 	CALL	GETSPD
 	CALL	CLRSCR
 	CALL	DRAW
 	JR	OVRHER
 DRAW	LD	HL,4FFH
 	LD	(DEL4),HL
 	LD	HL,8FFH
 	LD	(DEL5),HL
 	LD	A,56
 	LD	(NUMBER),A
 	XOR	A
 	LD	(WAY),A
 	LD	HL,SCR301
 	LD	DE,15360+64
 	CALL	DISPLY
 	LD	HL,SCR302
 	LD	DE,15360+128
 	CALL	DISPLY
 	LD	HL,SCR301
 	LD	DE,15360+192
 	CALL	DISPLY
 	LD	HL,SCR302
 	LD	DE,15360+256
 	CALL	DISPLY
 	LD	HL,SCR301
 	LD	DE,15360+320
 	CALL	DISPLY
 	LD	HL,SCR302
 	LD	DE,15360+384
 	CALL	DISPLY
 	LD	HL,SCR301
 	LD	DE,15360+448
 	CALL	DISPLY
 	LD	HL,SCR314
 	LD	DE,15360+832+3
 	CALL	DISPLY
 	LD	HL,SCR315
 	LD	DE,15360+896+1
 	CALL	DISPLY
 	RET
 OVRHER	LD	HL,SCR316
 	LD	DE,(SHPPOS)
 	CALL	DISPLY
 	JP	GAME
 DISPLY	LD	A,(HL)
 	CP	'#'
 	RET	Z
 	LD	(DE),A
 	INC	HL
 	INC	DE
 	JR	DISPLY
 ENTRWT	XOR	A
 	LD	A,(14400)
 	CP	1
 	RET	Z
 	JR	ENTRWT
 CLRSCR	LD	HL,3C00H
 	LD	DE,3C01H
 	LD	(HL),32
 	LD	BC,1024
 	LDIR
 	RET
 DLY5	LD	BC,(DEL5)
 HEREN	DEC	BC
 	LD	A,B
 	OR	C
 	JR	NZ,HEREN
 	RET
 DLY4	LD	BC,(DEL4)
 	JR	HEREN
 INITL	CALL	RESET
 	LD	HL,0
 	LD	(PSCORE),HL
 	LD	(HSCORE),HL
 	RET
 RESET	LD	HL,0
 	LD	(SHOTS),HL
 	LD	(HITS),HL
 	LD	(MISSES),HL
 	LD	(CSCORE),HL
 	LD	A,5
 	LD	(SHIP),A
 	LD	HL,15360+59
 	LD	(SAUPOS),HL
 	LD	HL,15360+960+24
 	LD	(SHPPOS),HL
 	RET
 GETSPD	XOR	A
 	LD	A,(14352)
 	CP	2
 	JR	Z,SETSPD
 	CP	4
 	JR	Z,SETSPD
 	CP	8
 	JR	Z,SETSPD
 	CP	16
 	JR	Z,SETSPD
 	CP	32
 	JR	Z,SETSPD
 	JR	GETSPD
 SETSPD	LD	(SPEED),A
 	RET
 BLOWUP	PUSH	IX
 	POP	DE
 	DEC	DE
 	DEC	DE
 	PUSH	DE
 	LD	HL,BLOW1
 	CALL	DISPLY
 	CALL	NOISEA
 	EXX
 	LD	A,(SPEED)
 	CP	32
 	CALL	NZ,SHPMOV
 	EXX
 	POP	DE
 	PUSH	DE
 	LD	HL,BLOW2
 	CALL	DISPLY
 	CALL	NOISEF
 	EXX
 	LD	A,(SPEED)
 	CP	32
 	CALL	NZ,SHPMOV
 	EXX
 	POP	DE
 	PUSH	DE
 	LD	HL,BLOW3
 	CALL	DISPLY
 	CALL	NOISEC
 	EXX
 	LD	A,(SPEED)
 	CP	32
 	CALL	NZ,SHPMOV
 	EXX
 	LD	HL,BLOW4
 	POP	DE
 	PUSH	DE
 	CALL	DISPLY
 	CALL	DLY5
 	POP	DE
 	LD	HL,BLOW5
 	CALL	DISPLY
 	RET
 BLOW1	DEFB	191
 	DEFB	191
 	DEFB	191
 	DEFB	191
 	DEFB	191
 	DEFB	191
 	DEFB	191
 	DEFB	'#'
 BLOW2	DEFM	'ZZZZZZZ#'
 BLOW3	DEFM	'0000000#'
 BLOW4	DEFM	':::::::#'
 BLOW5	DEFM	'       #'
 	END	402DH
